# Create your views here.
from django.views import View  # 类视图
from apps.users.models import User  # 模型类
from django.http import JsonResponse  # 返回响应类 JSON
import re

"""
需求分析：根据页面功能（从上到下，从左到右），哪些功能需要和后端配合完成
如何确定 哪些功能需要和后端进行交互呢？
    1. 经验
    2. 关注类似网站的相似功能
"""

"""
判断用户名是否重复的功能

前端：用户输入完用户名，失去焦点，发送一个axios(ajax)请求
后端（思路）：
    请求：
         请求方法：  get
         路由：     username>/username>/count/
         请求参数：  用户名 username（类型：string字符串）
         
    业务逻辑：
        获取用户名
        根据用户名查找数据库用户表
    响应：
        JSON {'code': 0, 'errmg': 'ok', 'count': count}
    步骤：
        1. 获取用户名
        2. 根据用户名查找数据库用户表
        3. 返回响应
"""

# 用户名是否重复 类视图
class UserNameCountView(View):
    def get(self, request, username):
        # 1.获取用户名
        # 2.根据用户名查找数据库用户表，如果是1，表示用户存在，如果是0，不存在
        count = User.objects.filter(username=username).count()
        # 3.返回响应
        return JsonResponse({'code': 0, 'errmsg': 'ok', 'count': count})